PICTURETHIS(TM) "SHAREWARE" VERSION RELEASE 4.00 DECEMBER 31, 1991 USER MANUAL, PART 4 OF 7 PARTS Copyright 1988, 1989, 1990, 1991 by Patricia Y. Williams and Gregory Williams, All Rights Reserved. HortIdeas Publishing, 460 Black Lick Road, Gravel Switch, KY 40328 U.S.A. 17.6. INCLINING AN OBJECT Inclining an object means leaning it away from the vertical or from the horizontal. This operation can be very useful for drawing 3-dimensional figures and shadows. To incline an object, while in the "OBJECT" state, press I and then select an object, as described in Section 16. The state becomes "INCLIN," and the selected object is dashed. A prompt appears: "Replace original object? (Y/N/ESC)." If you answer Esc, you are returned to the object menu and the "OBJECT" state. If you press Y, the inclined object replaces the original object when you have completed your manipulations. If you press any other key, the original object remains in addition to any inclined objects that you make. A new prompt appears (if "H+" is toggled): "Move then F1 to set anchor point." You can move the cursor (in all possible ways); then press F1 at an "anchor" point. The anchor point is a point on the screen around which the object is inclined. When the object is inclined, the anchor point does NOT move, although other points on the object move. Frequently, it is useful to have the anchor point on an endpoint. (If Esc is pressed instead of F1, the object menu returns.) A new menu appears, allowing you to choose whether you want to incline the object away from the vertical or the horizontal. Press V or H to choose vertical or horizontal inclination. (Esc allows you to reset the anchor point.) After you have chosen one of these, another menu appears, asking you to choose whether you want "Shadow" or "3- dimensional" inclination. These are descriptive terms to suggest ways the two different types of inclination are useful (described more fully below). Press S for "Shadow" or 3 for "3-dimensional." A new menu appears, allowing you to select whether the inclination angle is set by cursor movement or direct entry. (An Esc here backs out to the inclination type menu.) If you want to set the inclination angle by direct entry, press D. A prompt appears, requesting you to enter the inclination angle in degrees. The second line of the prompt shows the current inclination angle in parentheses. If you are satisfied with the current inclination angle, press Enter. If you want a different inclination angle, type it in, 49 followed by Enter. If you press Esc, the cursor movement or direct entry menu reappears. Positive inclination angles are measured in a CLOCKWISE direction from a vertical line connecting the anchor point to the top of the screen for vertical inclination, or from a horizontal line connecting the anchor point to the right side of the screen for horizontal inclination. Negative angles are measured in a COUNTERCLOCKWISE direction. The initial current inclination angle is 30 degrees. Any inclination angle entered becomes the current inclination angle for the next inclination operation. If you want to set the inclination angle by cursor movement, press C. A solid line appears through the anchor point, vertically from the top to the bottom of the screen for vertical inclination, or horizontally from the left to the right side of the screen for horizontal inclination. A prompt appears (if "H+" is toggled): "Move then F3 to set inclination angle." Move the cursor; a dotted line follows. The angle between the two lines is the inclination angle. Press F3 when you are satisfied with the inclination angle. If you press Esc, you can reset the anchor point. (By toggling the relative position box on (see Section 20.4) while setting the inclination angle, you can see the current inclination angle as the cursor moves.) The inclined object is drawn (without endpoints) and an "OK? (Y/N)" prompt appears. If you are satisfied with the inclined object, answer Y, and the inclined object will be established. If you are not satisfied with the inclined object, press any other key to return to the prompt asking if you want vertical or horizontal inclination. If you pressed Y, additional action depends on your answer to the previous prompt asking whether you wanted to replace the original object or not. If you are replacing the original object, the original object is erased, and the new object takes its place in the drawing sequence. If you are not replacing the original object, the new inclined object is drawn and an "Again? (Y/N)" prompt appears. If you answer Y, you can make more inclined copies of the original object. All inclined copies appear at the front of your drawing, but they can be layered differently (see Section 16.4). Returning to the difference between "shadow" and "3- dimensional" inclination, the best way to SEE that difference is to try a couple of hands-on examples. (For both of these examples, toggle "H+" on, and toggle the status box on by pressing W.) The first example shows "shadow" inclination, called that because it can be used to create shadow effects. Clear your drawing by pressing C and then answering Y to the prompt. Next, import the clip art object file STICKFIG.CLP (included on one of the distribution disks). See Section 19.3 if you want more details on how to do this; for now, just make sure STICKFIG.CLP is in the default directory, then press F10, I, and Enter, move the highlighted box to "STICKFIG.CLP" (using the cursor keys), and press Enter again. At the prompt "OK? (Y/N)," answer Y. Press Q to see the Quickshow screen representation of a running stick figure. You are going to give the stick figure a shadow. Press Esc to return to the drawing screen. Press F7 and then I to start the incline process. The stick figure is selected automatically, since it is the only object available. Answer N to the prompt: 50 "Replace original object? (Y/N/ESC)". Press Del to go to an endpoint, and press Space, +, and/or - as necessary to move the cursor to the endpoint at the stick figure's forward foot. Press F1 to set the anchor point at the forward foot. The "vertical/horizontal" menu appears; press V for vertical. At the next menu, press S for shadow. At the next menu, press D for direct entry, and key in 50 for the desired angle. An inclined image of the stick figure is drawn. Press Y in answer to the "OK?" prompt, and N in answer to the "Again?" prompt. View your figures on the Quickshow screen. The shadow should be black, so you need to darken it. Press F6, then L, and then select the shadow's body as the trail you want; next, press G for gray and key in a line gray percentage of 100 (black). Press K (for "Keep"). Now you need to make the shadow's head black too. Press F6, then F, and then select the shadow's head; key in 100 for the requested fill value. Now look at the figures on the Quickshow screen again (press Q). Notice that the shadow is in front of the stick figure. To correct this, press Esc to return to the drawing screen, then press F7 and L, then choose the shadow and press R to move it to the rear. View the Quickshow screen one more time (press Q). All done! Notice that the shadow reaches the same "height" as the stick figure. This is the important difference between "shadow" and "3-dimensional" inclination. For "shadow" inclination, the vertical (or horizontal) distances from a horizontal (or vertical) line through the anchor point to each endpoint remain the same when inclining vertically (or horizontally). For "3-dimensional" inclining, the distances of the inclined object remain proportional and are NOT stretched. As an example of "3-dimensional" inclining, you will make a child's alphabet block. Return to the drawing screen by pressing Esc. Clear the drawing by pressing C and then answering Y to the prompt. Now import the clip art object file BLKSIDE.CLP (included on one of the distribution disks). See Section 19.3 for more details on how to do this; for now, just make sure BLKSIDE.CLP is in the default directory, and then press F10, I, Enter, move the highlighted box to BLKSIDE.CLP with the cursor keys, and press Enter again. At the prompt "OK? (Y/N)," answer Y. Press Q to see, on the Quickshow screen, the side of a block with an "A" on it. You are going to make a drawing of a 3- dimensional block. Press Esc to return to the drawing screen. First you must make two copies of the block side. Press F7, then C. The block side will be selected automatically because it is the only object available. Press Del and then Space, + and/or - repeatedly until the cursor is on the lower left endpoint of the block side. Now press F1 to select that as the start point of the copy. Press Del again, then Space, +, and/or - repeatedly until the cursor is on the lower right endpoint of the block side. Now press F3. A copy of the block side will appear next to the original. Press Y to the "OK?" prompt, then Y to the "Again?" prompt. Press Del again, followed by Space, +, and/or - repeatedly to move the cursor to the top left endpoint of the original block side. Then press F3. Another copy of the block side appears above the original. Answer Y to the "OK?" prompt, but N this time to the "Again?" prompt. (Notice that there is some on-screen "garbage" left when 51 manipulating objects; it is functionally harmless, but you can press D while in the "FREE" state to redraw the screen if it becomes bothersome (see Section 25.3).) Now you need to scale the two copies of the block side. Press F7 and then S for scale, and select the top block side. Answer Y to the "Replace original object?" prompt. Move the cursor to near the bottom left corner of the top block side; press Del, followed by Space, +, and - repeatedly until the cursor is on this corner. Press F1 to set the anchor point at the corner. At the next menu, press D for direct entry of scale factors. Answer N to the "Uniform scaling?" prompt. Key in 1.0 for a horizontal scale factor and .6 for a vertical scale factor. Answer N to the prompt about scaling line weights. A "squashed" copy of the top block side is drawn. Press Y to answer the "OK?" prompt. Similarly, scale the right block side by .6 horizontally and 1.0 vertically, using its bottom left corner as the anchor point. Now the top and right sides need to be inclined to finish the block. Press F7 and then I. Select the top block side, answer Y to the "Replace original object?" prompt, and again move the cursor to its lower left endpoint. Press F1 to set the anchor point. Press V, then 3. Press D for direct entry, then key in an inclination angle of 60. The top block side is inclined. Answer Y to the "OK?" prompt. Similarly, incline the right block side horizontally, at -30 degrees. Now you should have what looks like a 3-dimensional block. (Note that the top right corner endpoint of the top block side and the top right corner endpoint of the side block side are a few internal units (see Section 20.3) apart. This should not be noticeable on hard copy from a 300 dpi laser printer, but might be slightly noticeable with a higher resolution output device, or if you scale up the block considerably. The potential problem can be corrected, if necessary, by ungrouping the top block side, erasing and redrawing the lines so they meet at the same endpoint, and regrouping the object. This really isn't very hard to do; the result is stored as a clip art object file (BLOCK.CLP) on one of the distribution disks.) You should group the three block sides into an object (F7, G, followed by Enter three times), or import BLOCK.CLP, to try making a stack of blocks, flipping or rotating the block, etc. 17.7. MULTICOPYING AN OBJECT Multicopying of objects to endpoints of a trail is accessed via the trail menu (press F6). You can use it to copy one object repeatedly to several places (nice for abstract visual designs and data plots (see Section 19.8). Two items are necessary for the multicopy operation: an object to be copied and a trail. The object is copied to (some or all of) the trail's endpoints. The rest of this section shows how. For minimal confusion the first few times you attempt multicopying, toggle help to "H+" and toggle on the status box by pressing W. To begin the operation, access the trail menu by pressing F6, then press O. The cursor moves to the closest on-screen initial endpoint of a trail, the trail becomes dashed, and the status box says "TRAIL?" If there is only one initial endpoint of a trail on the screen, then that trail is 52 selected automatically, and the status box says "OBJ?" If there are two or more starting endpoints of trails on the screen, you must select one of the trails by pressing + (same as Space) and/or - (repeatedly if necessary), then Enter. Again, once a trail has been selected, the status box says "OBJ?" Now you must select an object (that is, a trail, a previously grouped object, or a text block) to be copied to one or more of the selected trail's endpoints -- if there is only one object with a starting point on the screen, that object is selected automatically. Once an object has been selected (either manually or automatically), the status box says "POINT?" and, if "H+" is toggled, a prompt appears: "F3 to set start point." Now you must place the cursor at the point on the object which is to end up on the trail's endpoints, and press F3 to select that point. Next, a prompt asks "Copy to all endpoints?" Press Y for automatic multicopying of the selected object to all endpoints of the selected trail (INCLUDING OFF-SCREEN ENDPOINTS!). or press N (or a key other than Y or Esc) for prompted copying to each endpoint (THOSE ON-SCREEN ONLY!!) in turn. Pressing Esc backs out to selection of the point which will end up on the endpoints. If you pressed Y the status box returns to "FREE" after the automatic multicopying is done. If you pressed N the cursor moves to an endpoint on the selected trail and you are prompted for Y if you want the object copied there, N if you don't; this repeats until the cursor has moved to all on-screen endpoints of the selected trail in turn OR until you press Esc. If you press Esc, the status box returns to "FREE," LEAVING ALREADY COPIED OBJECTS IN PLACE. NOTE that there is NO way to back out of prompted multicopying so that already copied objects are erased! ALSO NOTE that if memory limits are reached during automatic or prompted multicopying, appropriate error messages are shown (follow the instructions provided by those messages), and already copied objects are NOT erased! 18. TEXT PictureThis is actually two programs integrated into one. It serves both as a vector-based PostScript drawing program AND as a "desktop publishing" page-layout program. Text can be used as a drawing element and manipulated as such (scaled, rotated, etc.), but it can also be used for more traditional typesetting to produce "drawings" that are really the typical text pages of a memo, letter, newsletter, or report. Of course both drawings and text can be integrated into a single page for a graphically oriented text page or a drawing with text integrated into it. We've attempted to provide support for flexible text placement, with the needs of technical illustrators given highest priority. Text editing is done in a character-based full-screen editor so you won't have to squint at "what-you- see-is-SORT-of-what-you-get" low-resolution screen fonts ("Is that a hyphen or an endash?" "Is that a left or a right quote?"). Yet you can still view a representation of the characters on the screen, and you can still edit text blocks AFTER they have been transformed as objects (flipped, 53 inclined, scaled, or rotated). Designing effective text and/or graphics pages is an art, but there are many guidelines that can help the beginner. We suggest, if you are going to do much typesetting, that you read one or more of the very numerous books/articles about designing with text. There is a great deal to be learned about fonts, text sizes, column layout, etc. 18.1. FONT FILES The "Shareware" Version of PictureThis can use the Times- Roman family of fonts, and the Symbol and ZapfDingbat fonts. There are two or three files for each font provided. One of these files (with extension .FNM) contains the PostScript name of the font (such as "Symbol"). The second file (with extension .FIN) contains character width information (and information about accented characters if provided by the font's AFM file). The third file (with extension .FKN) is written if the font's AFM file contains information on pair- wise kerning. PictureThis identifies each font (i.e., Times- Roman) by a unique number from 1 to 9999, and each file in the pair associated with a given font has "FONTXXXX.*" for its name, where XXXX is its identification number. For example, we have already identified the Times-Roman font resident in many PostScript-compatible printers as font number 91 for PictureThis (more on this below), and so the name, width, and kerning files for this font are, respectively, FONT91.FNM, FONT91.FIN, and FONT91.FKN. If you want to use the Times-Roman font in a PictureThis drawing, both FONT91.FNM and FONT91.FIN must be accessible to PictureThis. On one of the PictureThis distribution disks are font name, width, and kerning files for the 6 fonts available with the "Shareware" version of PictureThis. We numbered each font as shown below. (The list below also includes those fonts that can be used only, with the Registered version of PictureThis. With the Registered version you also receive a utility that allows you to use any PostScript font with PictureThis.) (The file FONTNO.EPS on one of the PictureThis distribution disks is an EPS file showing the numbering; send this file to your PostScript printer to see what the fonts look like, and to see which of the fonts are resident in your printer -- non-resident fonts are those with names printed in Courier (typewriter font), except, of course, Courier itself. That's because when a PostScript program requests a font which is nonresident in AND hasn't been downloaded to the printer, Courier is substituted for the "missing" font. We aren't aware of any PostScript- compatible printers lacking Courier as a resident font. Warning: FONTNO.EPS takes a long time to print, since so many fonts are used!) Font Number for PictureThis PostScript Font Name 11* AvantGarde-Book 12* AvantGarde-BookOblique 13* AvantGarde-Demi 14* AvantGarde-DemiOblique 21* Bookman-Light 22* Bookman-LightItalic 54 23* Bookman-Demi 24* Bookman-DemiItalic 31* Courier 32* Courier-Oblique 33* Courier-Bold 34* Courier-BoldOblique 41* Helvetica 42* Helvetica-Oblique 43* Helvetica-Bold 44* Helvetica-BoldOblique 51* Helvetica-Narrow 52* Helvetica-Narrow-Oblique 53* Helvetica-Narrow-Bold 54* Helvetica-Narrow-BoldOblique 61* NewCenturySchlbk-Roman 62* NewCenturySchlbk-Italic 63* NewCenturySchlbk-Bold 64* New CenturySchlbk-BoldItalic 71* Palatino-Roman 72* Palatino-Italic 73* Palatino-Bold 74* Palatino-BoldItalic 81 Symbol 91 Times-Roman 92 Times-Italic 93 Times-Bold 94 Times-BoldItalic 101* ZapfChancery-MediumItalic 111 ZapfDingbats * Only available with the Registered Version of PictureThis If you are using a downloadable font (or a font supplied with a non-Adobe PostScript-compatible interpreter) which is supposed to have the same character widths as one of the Adobe fonts, but has a different name -- an example is Palatine-Roman as a substitute for Palatino-Roman -- you can use the width information file corresponding to the Adobe font, and replace the Adobe name with the substitute non- Adobe name (WITHOUT a trailing carriage return) in FONTXXXX.FNM using a word processor or text editor which saves files in pure-ASCII format. 18.2. FONT ENCODING Most PostScript fonts use a "standard" encoding scheme to assign numbers (which, in turn, are assigned to one or more keyboard keys) to individual characters (examples: "A" and "$"). All of the 35 fonts listed above EXCEPT Symbol and ZapfDingbats use this standard encoding. Symbol and ZapfDingbats each use special encoding schemes, as do a few other commercially available "non-text" PostScript fonts. The ENCODLOW.TXT and ENCODALL.TXT files on one of the PictureThis distribution disks show the assignment of keys to characters (listed by their names in ASCII order) for all standard-encoding fonts, the Symbol font, and the ZapfDingbats font. If you have a dot-matrix printer capable of printing the full IBM character set (the characters you see at the DOS prompt when you hold down the Alt key while entering numbers between 127 and 254 on your numeric 55 keypad), print out ENCODALL.TXT; otherwise print out ENCODLOW.TXT (which doesn't show the "high" IBM characters) on any type of text printer. Alternatively, you can examine ENCODALL.TXT on your screen (at the DOS prompt, key in "TYPE ENCODALL.TXT" and press Enter). The ENCODING.PS file on one of the PictureThis distribution disks can be sent to a PostScript printer to show the assignment of keys to characters (listed as they actually appear in PostScript output) for standard-encoding fonts (shown in the Times-Roman only), the Symbol font, and the ZapfDingbats font. (Note: The ENCODING.PS file takes a long time to print. If one of the fonts in this file isn't resident in or hasn't been downloaded to your printer, that font's characters will appear in the Courier font in the output.) In summary, each PostScript font has an identification number (XXXX, where XXXX can be 1 to 9999), a name file (FONTXXXX.FNM), a width information file (FONTXXXX.FIN), and (in most cases) a kerning information file (FONTXXXX.FKN). One or more keyboard keys are associated with each of the font's characters (two examples: pressing D on the keyboard is associated with the character "D" in standard-encoded fonts, with the character "Delta" in the Symbol font, and with the character "four-leaf-clover" in the ZapfDingbats font; pressing Alt and 1 then 6 then 5 on the numeric keypad is associated with the character "Yen" in standard-encoded fonts, with the character "infinity" in the Symbol font, and with the character "sideways-heart" in the ZapfDingbat font.) 18.3. TEXT PARAMETERS For PictureThis, complete information about a particular text character placed on a drawing includes more than just its font number and associated key(s). The character's position and orientation on the drawing, its size (in PostScript points; 1 PS point = 1/72"), and its gray shading (from 0%, white, to 100%, black, in 1% increments) ALL must be specified. Character positions and orientations must be specified within the PictureThis full-screen text editor or by transformations of previously edited text, but values of the other items can be specified as the editor is entered. (They also can be specified within the editor, by using typesetting codes. More on this below.) Access the text menu by pressing F8. The state changes to "TEXT." The second line of the menu lists the current values for text point size ("PSXXX" with XXX = 1 to 999); font number ("FTYYYY" with YYYY = 1 to 9999); justification setting ("JL" for left justified, "JR" for right justified, "JF" for fully (both left and right) justified, "JC" for centered, or "JP" for positioned at cursor (explained below); line spacing in PostScript points ("LSZZZ.Z" with ZZZ.Z = 0.0 to 999.9); and text gray shading percentage ("GRJJJ" with JJJ = 0 to 100). These values can be altered by pressing P to access the parameters menu, then pressing P, F, J, L, or G as desired, next keying in the new value and pressing Enter (just pressing Enter keeps the old value), and finally (back at the Parameters menu) pressing K or Enter to keep the new value(s) and return to the text menu. 56 While at the font number menu (accessed by pressing F at the parameters menu), press ? to view a help screen showing the numbers and names of the 35 fonts for which we provide name and width files in the Registered version (assuming that the help file PT4FONT.HLP is in the current directory path; otherwise, you'll get an error message and must press a key to continue). The font help screen also is accessible from within the editor (see below). More than one value can be changed before you press K (or Enter) back at the text menu. Pressing Esc while at the parameters menu returns the text menu WITH THE OLD VALUES RESTORED. The default text parameter values when you load PictureThis are PS10, FT0, JP, LS11.0, and GR100. BEFORE YOU CAN EDIT, YOU MUST CHANGE THE FONT NUMBER FROM 0 TO A VALID NUMBER (ONE WITH ACCESSIBLE INFORMATION FILES). (But when a previously saved drawing file containing text is loaded (using the file menu, accessed by pressing F10), the text parameter values are changed to those current WHEN THE DRAWING FILE WAS SAVED, and you won't necessarily need to change to a valid font number.) PictureThis searches the directory specified in PICTHIS.CFG for font files. If it fails to find the needed files, you are prompted to specify a new directory. This new directory is saved in PICTHIS.CFG in your default directory, so that the next time you run PictureThis, the font files will be found automatically. Note that when you change the point size, the line spacing automatically changes to a commensurate value (you can change the line spacing AFTER changing the point size, if the spacing isn't what you want): line spacing becomes 1.2 times point spacing (rounded to the nearest point). All of the text parameter values remain unchanged unless they are altered via the parameters menu or during cutting (explained below), regardless of typesetting codes in the editor (also explained below); the point is that if you want several text blocks with the same parameters, you won't need to change the parameters each time you edit a new block -- the old parameters will remain in effect unless you change them explicitly. When at the text parameters menu (accessed from the "FREE" state by pressing F8 and then P), you can cycle through all previously kept sets of parameters by pressing Space, +, and/or - repeatedly. When a set you want to use is shown in the second line of the menu, press K or Enter to select that set and return to the text menu. This provides an easy way to reuse previous parameter sets, without needing to key in each parameter individually. 18.4. TEXT BLOCKS AND MARGINS The basic unit of text in PictureThis is the text block, which results from an editing session. Associated with each text block are the text parameters just described, plus a margin which serves as a boundary for the text block. Margins are shown as rectangles (and, following some types of transformations of text blocks, as parallelograms) on the drawing screen. The default margin lines are at the edge of the 100% screen (same as the default frame lines). Text justification for a given block is done with respect to the block's margin's left and right vertical lines -- 57 that is, they are left and right vertical lines PRIOR to any transformations! Text is placed between the left and right vertical lines (or their vertical extensions), beginning with the baseline (the imaginary line upon which the characters sit) of the first line of the text block at the current VERTICAL cursor position, WHETHER OR NOT THE CURSOR IS BETWEEN THE MARGIN'S TOP AND BOTTOM LINES, so that text can flow "into the top" or "out of the bottom" of the margin while remaining properly justified. In fact, FOR LEFT, RIGHT, FULL, OR CENTER JUSTIFICATION, THE CURSOR NEED NOT BE BETWEEN THE MARGIN'S LEFT AND RIGHT LINES: the text still will be placed correctly between the margin's left and right vertical lines. Note, however, that the position-of-cursor justification setting places text beginning with the left side of the baseline of the first character in the text block AT THE CURRENT (VERTICAL AND HORIZONTAL) POSITION OF THE CURSOR, then left-justifies the text between a vertical line through the cursor position and the margin's right vertical line (and possibly its extensions). To edit with position-of-cursor justification, the current cursor HORIZONTAL position MUST lie between the margin's left and right vertical lines or their extensions. Position-of-cursor justification is convenient for adding short text blocks (such as one-line labels) to drawings; if the current margin is large enough to include all of a drawing's area, you can use position-of-cursor justification to place several short text blocks around the drawing without needing to change the margin at all. We've made it easy to move the cursor to the beginning or end of each text block on the drawing screen. To move the cursor to the beginning of each text block HAVING ITS BEGINNING ON THE CURRENT SCREEN, in turn, press Tab and then + (same as Space) or - (each text block is dashed when the cursor is at its beginning); to leave the cursor at the beginning of a text block, press Enter -- Esc returns the cursor to its original position. The cursor will NOT move to a text-block beginning NOT on the screen. Similarly, to move the cursor to the end of each text block HAVING ITS END ON THE CURRENT SCREEN, in turn, press Shift Tab, then + (same as Space) or - (each text block is dashed when the cursor is at its end); to leave the cursor at the end of a text block, press Enter -- Esc returns the cursor to its original position. The cursor will NOT move to a text-block end NOT on the screen. Note: If there is a carriage return (shown as a downward- pointing arrow on the editor screen) at the end of the "last" line of a text block, the end of the block is actually at the beginning of the line FOLLOWING the "last" line with the carriage return. If there is no carriage return at the end of the "last" line of a text block, the actual end of the block is at the end of the last character in the block's "last" line (which really is the last line!). This might be a bit confusing at first, but it makes it easy to align successive paragraphs: just put a carriage return at the end of the last paragraph in a text block, move the cursor to the end of that text block, which is the beginning of the next line, where the next paragraph should start, and then enter the editor to write the next paragraph). To define a new margin, press M when at the text menu, move the cursor to where you want one corner of the margin 58 and press F1, then move the cursor to where you want the diagonally opposite corner of the margin and press F3. Margins CANNOT be deleted. To select a different current margin, when at the text menu, press + and/or - to cycle through all of the previously defined margins. When the margin you want to select appears, stop cycling, and that margin will be used as the new current margin. To move the cursor to the top horizontal line of the current margin, press Ctrl T; to move to the bottom horizontal line, press Ctrl B; to move to the left vertical line, press Ctrl L; and to move to the right vertical line, press Ctrl R (top, bottom, left, right, horizontal, and vertical apply to the margin as it appeared BEFORE any transformations!) When you enter the editor, the current margin (the one shown on the drawing screen) becomes the margin for the text block you are editing. 18.5. EDITING Assuming that you are at the text menu with a valid font number (such as "FT91" for Times-Roman), you can press E or Enter or F8 to enter the editor. The editor is 200 lines long. You can back out of the editor and return to the drawing screen by pressing Esc. The text block is NOT drawn on the screen; it remains in the editor, so you can return to it later. Other special keys in the editor include Home and End to move the cursor to the beginning and the end, respectively, of the line it is on, and Ctrl Home and Ctrl End, to move the cursor to the beginning and the end, respectively, of the editor contents. The cursor keys, PgUp, PgDn, Back Space, and Del work as in most text editors. 18.5.1 EDITOR STATUS LINE The top line on the editor screen shows the current values of text and positioning parameters. "PSXXX" (with XXX = 1 to 999) is the text point size (points are PostScript points; 1 PS point = 1/72"). "FTYYYY" (with YYYY = 1 to 9999) is the font number. "JL," "JR," "JF," "JC," or "JP" is the justification setting: left, right, full (left and right), centered, or position-of-cursor. "LSZZZ.Z" (with ZZZ.Z = 0.0 to 999.9) is the line spacing in points. "GRJJJ" (with JJJ = 0 to 100) is the text gray shading percentage (white is 0, black is 100). "WT_______" is the total width of the margin. "WU_______" is the horizontal distance from the left side of the margin to the current position of the cursor: the "width used." "WR_______" is the horizontal distance from the current position of the cursor to the right side of the margin: the "width remaining." "HU_______" is the vertical distance from the baseline of the first line in the text block to the current position of the cursor: the "height used." "HR_______" is the vertical distance from the current position of the cursor to the bottom of the margin (which 59 becomes negative when the text flows "out of the bottom" of the margin): the "height remaining." The above distances ("_______") are in units which depend on the current units chosen via the Miscellaneous menu (F9 and then U), as shown in the following table: CURRENT UNITS DISTANCE UNITS IN EDITOR STATUS LINE Pixels (PX) Pixels Inches (IN) Inches (1 Inch = 6 Picas = 72 Points) Picas & Points(PP) Picas & Points (1 Pica = 12 Points) Points (PT) Points (1 Point = 1/72 Inches) Centimeters (CM) Centimeters Millimeters (MM) Millimeters 18.5.2 FUNCTION KEY OPERATIONS The bottom line on the editor screen lists editor function key operations. At the left side of the bottom line, "N" indicates that the text block being edited HAS NOT been transformed via object menu operations (accessed by pressing F7); "T" indicates that the text block HAS been transformed, so that distances indicated on the top line of the editor screen might not equal actual distances on the drawing. A list of function key operations follows; a detailed description of the action of each function key is in the following subsections. FUNCTION KEY OPERATION F1 Access HELP screens F2 Delete an editor line F3 Compose the text in the editor F4 Clear the editor F5 Set the text to the drawing F6 Go to the next error F7 Change pairwise kerning values F8 Put an accented character in the text F9 Find/Replace text F10 Read/Write an ASCII file 18.5.2.1 F1 - HELP SCREENS Press F1 for a help screen showing typesetting code formats; press Enter to see a second help screen showing special editor keys; pressing F1 a second time (from either help screen) accesses a screen showing font numbers and names; pressing any other key returns to the editor from any of the help screens. Accessing these three help screens requires that the files PT4EDIT1.HLP, PT4EDIT2.HLP, and PT4FONT.HLP are in the current directory path, otherwise you'll see an error message (and can return to editing by pressing any key). PT4FONT.HLP is a text file which can be user-edited with a word processor or text editor and saved in ASCII format; this allows you to include new fonts on the font help screen. Note: Only the first 24 (80-character) lines in PT4FONT.HLP are read by PictureThis, so don't put more than 24 lines in a modified version. 18.5.2.2 F2 - DELETING A LINE F2 deletes (IRRETRIEVABLY!) the entire line containing the 60 cursor, moves up all lines below the deleted line by one line, and places the cursor at the beginning of the line which was formerly just below the deleted line. 18.5.2.3 F3 - COMPOSING TEXT F3 "composes" the text block; that is, it counts character widths and takes text and positioning parameters into account to wrap lines properly; composing also checks for certain kinds of errors and reports them to the user on the top line of the editor screen. After making changes in a text block, you'll need to compose to see where the lines actually "wrap" to fit the margin, given the selected justification setting. A line which does NOT wrap on the drawing screen but is too wide to fit on one line of the editor screen (80 characters; there is no sideways scrolling in the editor) is wrapped automatically on the editor screen WITH A RIGHT ARROW AT THE END OF THE LINE signifying that the wrap is in the editor ONLY, NOT on the drawing. Lines which wrap on the drawing have NO right arrows at their ends in the editor. You can put a carriage return at the end of any line (by pressing "Enter") to FORCE a wrap on the drawing (shown in the editor by a DOWN ARROW); this is most useful for ending paragraphs when fully justifying, since without a carriage return, the last word is set against the right margin, (probably) resulting in too much space between each of the words on the last line. 18.5.2.4 F4 - CLEARING THE EDITOR To clear the editor completely AND IRRETRIEVABLY, press F4; a prompt will ask if you really want to clear; press Y if you do, any other key if you don't. 18.5.2.5 F5 - SETTING THE TEXT BLOCK F5 "sets" the text block by composing it AND returning to the drawing screen, where the text block is drawn. F5 also checks for certain kinds of errors and reports them to the user on the top line; all such errors must be corrected before the text block can be set. In other words, correct any errors and press F5 again. Sometimes you will want to set only PART of a text block, leaving the remainder of the block in the editor; to mark the end of text which is to be set, press Ctrl Q (for "quit"). On the editor screen, the "quit setting text" position is marked with a LEFT AND RIGHT ARROW. Then when you press F5, only the text BEFORE the arrow will be set, and the text AFTER the arrow will remain in the editor. 18.5.2.6 F6 - FINDING ERRORS To aid in correcting multiple errors, you can press F6 to move the cursor to the location of each error (discovered by PictureThis when you attempted to compose or set the current text block) in turn. 18.5.2.7 F7 - PAIR-WISE KERNING Press F7 to view the pair-wise kerning screen. When pair- 61 wise kerning is turned on (by placing a typesetting code in a text block; see Section 18.6), certain contiguous pairs of characters are positioned closer together or further apart than when pair-wise kerning is turned off (also by placing a typesetting code in the text block). Which character pairs are kerned and by how much are specified by a table in one of the information files for the current font; this table originally was constructed using data in the font's AFM file; if a font's AFM file doesn't include pair-wise kerning data, then there is no kerning information file for that font. The kerning information file (if it exists) is read by PictureThis when a font is selected for use, and the data in the file is shown on the pair-wise kerning screen: each kerned pair appears with the number of units (explained in Section 18.6) of kerning (negative units indicate reduced spacing between the characters when pair-wise kerning is on, and positive units indicate increased spacing). To alter the kerning of a pair, move the block cursor (using the cursor keys) to the pair, press Enter, key in a new value (between -999 and +999, with the "+" optional), and press Enter again (pressing Enter without keying in a new value keeps the old value; keying in "0" (zero) and then pressing Enter REMOVES THE PAIR FROM THE TABLE). To add a new kerning pair, move the block cursor to the space after the end of the final column (where the cursor is blank), press Enter, and follow the instructions given (pressing Enter after keying in each item requested). Following each deletion and addition, the table is resorted alphabetically. To back out to the editor WITHOUT KEEPING ANY CHANGES, press Esc; or press F8 to return to the editor and keep all changes; or press F10 to SAVE all changes to a font kerning file in the current font directory, WRITING OVER THE OLD KERNING INFORMATION FILE IN THAT DIRECTORY WITHOUT WARNING. 18.5.2.8 F8 - ACCENTED (COMPOSITE) CHARACTERS Pressing F8 accesses the accented (composite) character screen, from which you can pick a character to enter into the editor. The accented characters shown are those given in the standard-encoding AFM file (see Section 18.1), and their names are those used in the AFM file; to see how the characters appear in hard-copy output, print out the file ENCODING.PS (included on one of the distribution disks) on a PostScript-compatible printer. To enter a character into the editor, move the block cursor to the character and press Enter. The character appears in the editor (beginning with ) with the necessary typesetting codes for proper positioning of the two parts of the character; you can edit the codes if you wish. Positioning of the parts of accented characters can be altered by modifying the font width information file using the utility program AFMTOPT.EXE (see Section 18.1) OR the utility program MODFONT.EXE (see Section 18.10), but additional accented characters CANNOT be added so that they appear on the accented character screen. If you need extra accented characters, consider using a keyboard macro program to assign the appropriate character and typesetting codes to otherwise unused keys. 18.5.2.9 F9 - FINDING/REPLACING TEXT 62 To find text, place your cursor somewhere BEFORE the text you want to find. Then press F9. The top line asks for the text you want to find. Type it in and press Enter. (The text can include Ctrl-A, Ctrl-Z, and Ctrl-Q for their equivalents in the text (See Section 18.6). It can also include Ctrl-E to find the carriage return symbol (down-arrow) which you get when you press Enter.) Another line appears, asking you to specify other options. If you want to merely find the first instance of the text after the cursor, press Enter. The cursor moves to the first character of the first instance of the found text. If no instance is found, the cursor does not move, and you see a message. The editor recomposes the text whenever it is attempting a find, so it will find text even if it is wrapped at the end of a line and even if it has a SOFT-HYPHEN inserted in it. If you want to find the next instance of the same text, press F9 again. Notice that your previous text to be found is shown on the top line, so if you want to find the same text again, just press Enter twice. It will find the NEXT instance of the text. Before you press Enter to execute the find, you can also specify whether you want to find only text that is exactly like that you typed in (case sensitive, the default), or text that has the same letters, but possibly of a different case (capitals vs. small letters) than that originally typed in (case insensitive). If you specify case insensitive by pressing I, and you are searching for 'dog', the search also finds 'DOG' and 'Dog'. You can also press S for case sensitive, if you have previously chosen case insensitive. If you want to replace found text with different text, before you press Enter, press R. You are asked for text to substitute for the original text. Type in your text (you can include the same Ctrl characters as in the find line) and press Enter. You then have, in addition to the case option, a next/all option. Next (the default) means that only the next instance of the found text is replaced. Press A for all if you want ALL instances past the cursor position to be replaced. When you are ready to execute the replace command, press ENTER. The text is recomposed, and the next/all instance(s) of the found text is replaced with the replace text. The cursor goes to the beginning of the last replaced text. If no instance is found, the cursor does not move, and you see a message. If you want to perform the same replace operation again, press F9, Enter, R, Enter, Enter. 18.5.2.10 F10 - READING/WRITING ASCII FILES IN THE EDITOR PictureThis can import text files prepared in word processors. It can also export a file prepared in the editor. To import/export a file while in the editor, first press F10. A line appears at the top of the editor, asking if you want to [R]ead, [W]rite, (or in some cases) [C]ontinue reading a file. If you press R or W, you are asked for a file specification. You can type in a specific file name (with path if necessary), or a file specification with a wild card character (e.g., *.txt) to get a directory of files from which you can choose, or you can just press Enter and get a directory of all the files in the current directory. Choose a file by using the cursor keys to highlight the correct file name and pressing Enter. 63 If you are writing a file, the contents of the editor will be written to that file, except real CARRIAGE RETURNS replace the END-OF-PARAGRAPH (down arrow) markers in the editor. You could possibly use this saved file in another text editor, but the PictureThis editor is NOT a general purpose editor, and shouldn't be used as such. The file saving capability is mainly so that if you are editing and have to quit, you can save your file and come back to it later. If you are reading a file, a portion of the file will be appended to the END of the text that is already in the editor, until it fills 75% of the editor's lines. PictureThis remembers what portion of the file has been read, so after you set part of the editor's text to the drawing (in the process, freeing some of the editor's lines), you can continue reading that file where you left off. If you have previously read from a file, when you press F10, you will be given the choice to [C]ontinue reading from the same file. Just press C and another portion of the file is appended to the end of the text remaining in the editor, filling no more than 75% of the editor's lines. Why does it fill only 75% of the editor's lines? To allow you to edit the text without overflowing the end of the editor. If you do overflow, (e.g., by changing to a much larger point size), the text which overflows is permanently lost, and you will be warned that it has happened. An example of a typical session of typesetting a few-page document for which you have an ASCII file produced by a word processor follows: A. Run CONVERT on the file (see Section 29.). B. Set up your frame and margins on the drawing screen. Let's say you want a two-column layout on 8-1/2 by 11 paper. (You could use TWOCOL.DRW as your layout drawing, it's on one of the distribution disks.) Choose the left column's margin and place the cursor at the top left of the margin (Ctrl-L, Ctrl-T). C. Set up the font, point size, justification, etc. Save the layout as a drawing. D. Enter the editor. E. Press F10, then R, then type your file name in. Part of the file is read into the editor. F. Edit the text as necessary. Compose (F3). G. Note the line where the Height Remaining indicator turns negative. Place an END-OF-TEXT (Ctrl-Q) marker at the beginning of this line. Press F5 to set the text to the first column. H. Switch the margin to the second column and move the cursor to the top left of this column. Enter the editor. Notice that the text that was previously after the END-OF- TEXT marker is now at the beginning of the editor. I. Press F10, then C, to continue reading the Ascii file. J. Edit and set the second column as you did the first. K. Save your first page as a drawing and possibly an EPS file. L. Read the layout you previously saved as a drawing back in, position the cursor at the top of the first column, and repeat the above procedure. M. Continue the above until you have reached the end of the word processor file. 64 18.5.3 COPYING/MOVING/DELETING BLOCKS OF TEXT PictureThis allows the user to mark a block of text in the editor, then move or copy that block to a different position in the editor or delete the block. To mark a block, place the cursor at the beginning of the block and press Alt-B; then place the cursor at the end of the block (the character AFTER the last character of the block) and press Alt-E. If both ends are marked and the beginning is before the end, the marked block appears in reverse text. You can edit within or outside of the marked block, and it remains marked. You can compose or perform any other editor operations while the block is marked. To delete a marked block, press Alt-D. The block is deleted, and the text is recomposed. To move a marked block, place the cursor after the character you want the block to follow and press Alt-M. The block is moved to the new location and remains marked; the text is recomposed. To copy a marked block, place the cursor after the character you want the copy to follow and press Alt-C. A copy of the block is placed at the cursor. The copy remains marked (to make multiple copying easy). The text is recomposed. The original block is not changed, but it is no longer marked. To "unmark" a block, press Alt-U. 18.5.4 HYPHENATION PictureThis hyphenates text automatically. We have incorporated HY-PHEN-EX (Copyright 1989 GeoMaker Software), which uses a sophisticated algorithm to hyphenate words. Hyphenation is ON by default in the editor. All you do is type your text in normally; when the editor determines that it is time to wrap a line, it first checks in the hyphenation exception dictionary HYPHEN.LST (an ASCII-format file which is user-modifiable) for the word that needs to be wrapped. If it can't find the word, HY-PHEN-EX algorithms are used to find possible hyphenation points. If no suitable hyphenation points are found, the line wraps on the nearest SPACE or HARD-HYPHEN. (A HARD-HYPHEN is a hyphen which the user typed in as part of the text.) SOFT-HYPHENS (hyphens inserted by PictureThis) appear different on the screen than normal hyphens (they have a short line down on the left), and can change each time the text is composed. We think HY-PHEN-EX does a good job -- it very rarely places a hyphen where it doesn't belong. But it doesn't catch every allowable hyphen. (There are all kinds of rules about hyphenation, and dictionaries don't always agree. One rule that HY-PHEN-EX uses, which might seem a bit strange, is that it never hyphenates a word less than five characters long.) If you don't like the way a word is hyphenated by HY- PHEN-EX (that is, by PictureThis), you can manually insert your own hyphen. However, this can be dangerous, because if you change any of the text before the inserted hyphen, or change any text parameters (such as font or point size), the hyphen is likely to end up in the middle of the line. (We see this frequently in computer typeset work.) Be careful! A better way is to add your word to the exception dictionary. HYPHEN.LST can be edited in most word processors or editors, 65 including the PictureThis editor. If you are in the PictureThis editor, and you want to change HYPHEN.LST, just save your file (see Section 18.5.2.10), import HYPHEN.LST, and add a word. Each word in HYPHEN.LST ends in a carriage return and has hyphens wherever you want to put them. The order in which the words appear is unimportant. Then save HYPHEN.LST. If you want to use the new HYPHEN.LST, you must exit PictureThis (save your drawing first), and restart it. If you add too many words to HYPHEN.LST, it will slow down the hyphenation process. In general, HY-PHEN-EX does such a good job that you will probably seldom need to add a word. It even hyphenates nonsense words "correctly". Note that HY- PHEN-EX is made to work with American English; it will hyphenate foreign words, but possibly incorrectly. With normal text, hyphenation is usually desirable. However if you want to turn hyphenation OFF, put the typesetting code (see Section 18.6) in your text where you want it turned off. Hyphenation can be reactivated with a later in the text. 66